#pragma once

VAMPIRE_NAMESPACE_BEGIN

class _VampireExport BaseManager : public MemoryAlloc
{
public:
	virtual ~BaseManager(void) { RELEASE_MAP(mRecMap, ResourceMap); }

	typedef List<TString>::type     LocationList;

	typedef HashMap<TString, void*> ResourceMap;

	void                      addLocation(TString location);

	void                      release(const TString& name);

	ResourceMap::iterator     getFirst() {return mRecMap.begin();} 
	
	ResourceMap::iterator     getLast()  {return mRecMap.end();}

protected:
	LocationList              mLocationList;
	ResourceMap               mRecMap;
};

VAMPIRE_NAMESPACE_END